#!/bin/bash
declare -A matriisi # assosiatiivinen matriisi siirtyy globaalialueella funktioon päin mutta palauttaminen ei onnistu noinvain. 181

function talleta_matriisi () { echo $(declare -p | grep "declare -A $1"  | cut -d= -f 2-) > /tmp/delme ;} # assosiatiivisen matriisin muistikuva RAM:missa talletetaan levylle. 

function tulosta_matriisi () { ( echo -n 'jäsenten arvot   : '; eval echo \${$1[*]}; echo -n 'jäsenten osoitteet : '; eval echo \${!$1[@]} ) | column -t ;}

# muodostetaan koematriisi:
matriisi[ykkönen]=yksi
matriisi[555]=2
matriisi[17]=3
matriisi[2]=4 

talleta_matriisi matriisi
unset matriisi; declare -A matriisi # unset nollaa matriisin joten voi olla varma että matriisi on luettu levyltä. Mutta unset vie samalla assosiative-statuksen joten se täytyy palauttaa. Lauseen voi kommentoida
eval matriisi=$(cat /tmp/delme)     # assosiatiivinen matriisi muodostetaan uudelleen levyltä luetun muistikuvan mukaan. Erillistä funktiota levyltä lukemiseen ei edes tarvita
tulosta_matriisi matriisi
